package cau.se.project.data.method;

import javax.swing.tree.TreeNode;

public interface GroupControl extends RowControl {

	/**
	 * 인자로 들어오는 멤버를 그룹에 더한다
	 * @param element 들어갈 element
	 * @throws Exception 
	 */
	public void
		addGroupMember(TreeNode element)
		throws Exception;
	
	/**
	 * 인자로 들어오는 멤버를 삽입한다
	 * @param rowInsert 들어갈 element
	 * @param rowPosition 들어갈 위치에 있는 행. null이면 가장 마지막
	 * @throws Exception 
	 */
	public void
		insertGroupMember(TreeNode rowInsert, TreeNode rowPosition)
		throws Exception;
	
	/**
	 * 인자로 들어오는 객체를 제거한다 
	 * @param element
	 * @throws Exception 
	 */
	public void
		removeGroupMember(TreeNode element)
		throws Exception;
	
	/**
	 * row가 child중에 dependency를 가지는지 확인한다
	 * @param row
	 * @return
	 */
	public boolean
		isDependencyToChild(RowControl row);
	
	/**
	 * 인자로 주어진 이름으로 해당 그룹에서 row를 찾는다
	 * @param name
	 * @return
	 */
	public TreeNode
		findRowByName(String name);
	
}
